package face.pay.entity;

import java.util.Objects;

/**
 * 系统用户信息
 */
public class UserInfo {

    private Integer id;

    private Integer oemId;

    private Integer companyId;


    private String  userName;

    private String  passWord;

    /**
     * 推荐人 父级
     */
    private Integer recommendId;

    /**
     * 代理商ID 针对商家用户
     */
    private Integer agencyId;

    private String  createdTime;

    private Integer createdBy;

    private String  updatedTime;

    private Integer updatedBy;

    private String  mobile;


    private String trueName;

    private String email;

    /**
     * 身份证号
     */
    private String idCard;


    /**
     * 用户类型
     * OEM
     * AGENCY  代理
     * ENTERPRISE   商家门店
     */
    private String  type;


    /**
     * 等级
     */

    private Integer levelId;

    /**
     * 分润设置 针对商家用户
     */
    private Integer profitId;
    /**
     *
     */
    private String profitName;

    /**
     * 删除标记 0：未删除 1：已删除
     */
    private Integer deleted;

    /**
     *用户状态 -1：锁定 0：过期 1：正常
     */
    private Integer state;

    /**
     * 用户更改备注
     */
    private String remarks;

    private  AgencyLevel agencyLevel = new AgencyLevel();

    private  ProfitInfo profitInfo = new ProfitInfo();

    public UserInfo() {

    }


    public UserInfo(Integer id,Integer oemId, String userName, String passWord) {
        this.id = id;
        this.oemId = oemId;
        this.userName = userName;
        this.passWord = passWord;
    }

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }


    public Integer getDeleted() {
        return deleted;
    }

    public void setDeleted(Integer deleted) {
        this.deleted = deleted;
    }

    public Integer getState() {
        return state;
    }

    public void setState(Integer state) {
        this.state = state;
    }

    public String getRemarks() {
        return remarks;
    }

    public void setRemarks(String remarks) {
        this.remarks = remarks;
    }

    public String getUserName() {
        return userName;
    }

    public void setUserName(String userName) {
        this.userName = userName;
    }

    public String getPassWord() {
        return passWord;
    }

    public void setPassWord(String passWord) {
        this.passWord = passWord;
    }


    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        UserInfo userInfo = (UserInfo) o;
        return Objects.equals(getId(), userInfo.getId());
    }

    public Integer getOemId() {
        return oemId;
    }

    public void setOemId(Integer oemId) {
        this.oemId = oemId;
    }

    public Integer getCompanyId() {
        return companyId;
    }

    public void setCompanyId(Integer companyId) {
        this.companyId = companyId;
    }

    public Integer getRecommendId() {
        return recommendId;
    }

    public void setRecommendId(Integer recommendId) {
        this.recommendId = recommendId;
    }

    public String getProfitName() {
        return profitName;
    }

    public void setProfitName(String profitName) {
        this.profitName = profitName;
    }

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public String getCreatedTime() {
        return createdTime;
    }

    public void setCreatedTime(String createdTime) {
        this.createdTime = createdTime;
    }

    public Integer getCreatedBy() {
        return createdBy;
    }

    public void setCreatedBy(Integer createdBy) {
        this.createdBy = createdBy;
    }

    public String getUpdatedTime() {
        return updatedTime;
    }

    public void setUpdatedTime(String updatedTime) {
        this.updatedTime = updatedTime;
    }

    public Integer getUpdatedBy() {
        return updatedBy;
    }

    public void setUpdatedBy(Integer updatedBy) {
        this.updatedBy = updatedBy;
    }

    public String getMobile() {
        return mobile;
    }

    public void setMobile(String mobile) {
        this.mobile = mobile;
    }

    @Override
    public String toString() {
        return "UserInfo{" +
                "id=" + id +
                ", oemId=" + oemId +
                ", companyId=" + companyId +
                ", userName='" + userName + '\'' +
                ", passWord='" + passWord + '\'' +
                ", recommendId=" + recommendId +
                ", agencyId=" + agencyId +
                ", createdTime='" + createdTime + '\'' +
                ", createdBy=" + createdBy +
                ", updatedTime='" + updatedTime + '\'' +
                ", updatedBy=" + updatedBy +
                ", mobile='" + mobile + '\'' +
                ", type='" + type + '\'' +
                ", levelId=" + levelId +
                ", profitId=" + profitId +
                ", agencyLevel=" + agencyLevel +
                ", profitInfo=" + profitInfo +
                '}';
    }

    public Integer getLevelId() {
        return levelId;
    }

    public void setLevelId(Integer levelId) {
        this.levelId = levelId;
    }

    public AgencyLevel getAgencyLevel() {
        return agencyLevel;
    }

    public void setAgencyLevel(AgencyLevel agencyLevel) {
        this.agencyLevel = agencyLevel;
    }

    public Integer getProfitId() {
        return profitId;
    }

    public void setProfitId(Integer profitId) {
        this.profitId = profitId;
    }

    public ProfitInfo getProfitInfo() {
        return profitInfo;
    }

    public void setProfitInfo(ProfitInfo profitInfo) {
        this.profitInfo = profitInfo;
    }

    public Integer getAgencyId() {
        return agencyId;
    }

    public void setAgencyId(Integer agencyId) {
        this.agencyId = agencyId;
    }

    public String getTrueName() {
        return trueName;
    }

    public void setTrueName(String trueName) {
        this.trueName = trueName;
    }

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getIdCard() {
        return idCard;
    }

    public void setIdCard(String idCard) {
        idCard = idCard;
    }

}
